import useGlobalState from "./useGlobalState";
const [getAuthUser, setAuthUser] = useGlobalState("USER", { storage: "local" });
const defaultConfig = {
  auth: false
}

/**
 * 验证用户登录信息，也可以在这里刷新权限，重新获取token
 */
const authVerify = () => {
  const authUser = getAuthUser();
  // authUser && console.log("用户信息", authUser);
  if (!authUser) {
    my.navigateTo({ url: '/pages/auth/login/index' })
  }
}

export default function (options = {}, pageConfig = {}) {
  //页面配置
  const config = {
    ...defaultConfig,
    ...pageConfig
  }

  //对onLoad进行重写
  var _onLoad = options.onLoad;
  options.onLoad = function (opt = {}) {
    //验证用户登录状态
    config.auth && authVerify();
    //增加一个页面周期
    options.beforeLoad && options.beforeLoad(opt);
    //执行页面onLoad，利用apply()挂载到页面this,并接受数组中的参数
    _onLoad && _onLoad.apply(this, [opt]);
  }

  //将经常用的一些方法挂在到page
  options.setAuthUser = setAuthUser;
  options.getAuthUser = getAuthUser;

  //开始执行页面
  Page(options);
}